Java String.replaceAll 正则表达式
全部标签 我正在寻找一个正则表达式来查找一些包含一些字母的单词。我有单词start,通过正则表达式,它应该找到包含(s,两个t's,a,r)且至少有3个字母的单词。所以它应该返回所有这些词:开始,馅饼,艺术,艺术。所以它应该至少是三个字母,并且只包含那些字符(s、两个t's、a、r)。我试过这样的:/(([^s]*s){1})(([^t]*t){2})(([^a]*a){1})([^r]*r){1}/g但是这个正则表达式不起作用,因为它需要全部按此顺序。这个我也试过:[star]{3,}但它匹配[]中任意数量的字符,例如它匹配sss 最佳答案
我的测试字符串包含一个左方括号和一个右方括号的4个实例,因此我希望以下正则表达式返回4个匹配项,但它只返回1个。consttest="sf[[[[asdf]]]]asdf"constregExp=newRegExp(/^.*\[.*\].*$/,"g");constmatches=test.match(regExp).length;console.log(matches); 最佳答案 您可以结合使用递归和正则表达式:functionparse(str){constmatches=[];str.replace(/\[(.*)]/,(m
我有一个用node.js编写的前向聚合器/最小化器/缓存器。现在效果很好。不过,我想知道是否有任何方法可以改进我的最小化正则表达式调用。一些注释并没有完全从CSS中删除,我注意到这里和那里还有一些其他问题。此外,考虑到我使用正则表达式的能力,我可能可以在一半的调用中完成相同的操作。:)如有任何建议,我们将不胜感激。谢谢。functionminimizeData(_content){varcontent=_content;content=content.replace(/(\/\*.*\*\/)|(\n|\r)+|\t*/g,'');content=content.replace(/\s
下面的代码是否有效?functiontest(){return/\//.exec("\/");}alert(test());似乎许多javascript压缩器(包括位于http://jscompress.com/的jsmin)都认为第二行的“//”是注释的开始。我认为这是“简单”实现的缩小器中的一个错误,因为我尝试过的所有浏览器实现都可以毫无问题地运行它。Tryitonjsfiddle. 最佳答案 我有兴趣在规范中查找它,根据它它是有效的:RegularExpressionLiteral::/RegularExpressionBod
我有一个正则表达式测试数字(0-9)和/或正斜杠(/)。它看起来像这样:/^[0-9/]+$/i.test(value)现在我相信这是正确的,但eclipsejavascript验证器不同意:Syntaxerrorontoken"]",deletethistoken我想这是因为分隔符/定界符是/并且eclipse“认为”正则表达式已完成(因此]将是意外的)。我们可以通过像这样转义/来满足eclipse:/^[0-9\/]+$/i.test(value)请注意,这两个版本都适用于我。我的问题是:据我所知,我不需要专门在该范围内转义正斜杠。它可能是特定情况(例如,对于javascript,
我正在开发一个Node脚本,它使用正则表达式来解析CSS文件,并且它工作得很好......除了处理@media查询时。问题是由于嵌套的花括号让我很不舒服。我基本上想创建一个媒体查询中所有内容的捕获组:这是我到目前为止所获得的内容。@media[^{]+\{([^}]+)}\s*}这适用于一些简单的事情,例如:@media(max-width:868px){aside.size-toggle{display:none;}}但是不能拾取多个嵌套规则,像这样:@media(max-width:767px){#wrapper.sidebar-displayaside{left:0;transi
我正在使用一个正则表达式:pattern=/([a-zA-Z0-9_\.].*?)=(.*?);/g;其中有超过我使用的文本中的一个匹配项。现在我想要“=”之后的内容。我使用了RegExp.$2但它只给出了一个值。请帮助我在所有可用匹配项中获取“=”后的值。 最佳答案 您必须在while循环中遍历匹配项:varmatch=null;while(match=pattern.exec(script_txt)){//Dosomethingwithmatch[2]} 关于javascript-j
这个问题在这里已经有了答案:Whydoregexconstructorsneedtobedoubleescaped?(5个答案)关闭4年前。我正在尝试将以下表达式转换为“newRegexp()”样式:http://jsfiddle.net/HDWBZ/varWyrazenie=/\btest[a-z]*/g;我真的很困惑,不知道如何解决。以下是我所做的,但显然它不起作用。varWyraznie=newRegExp("\btest[a-z]*","g");还有一个问题,如果我使用变量而不是“测试”,它会是什么样子?
我需要一个正则表达式来匹配用户键入的字符串。这有点难以解释,所以让我展示一下我的意思:它应该匹配这个字符串:“XXXX单位”,其中XXXX是任意数字。但它也应该匹配该字符串开头的任何子字符串,所以:"123""123u""123uni"也应该匹配。当然,这不应该匹配:"123xx"这看起来很简单,但我不太明白。这是我得到的最接近的:^\d+?u?n?i?t?s?...但不幸的是,它也匹配像“123us”这样的字符串。有人可以帮忙吗?它是javascript,所以我可能会因为缺少后视/前视功能而受到一些限制... 最佳答案 只需添加一
我怎样才能:将带有标志的JavaScriptRegExp转换为字符串文字(想想JSON),然后将该文字转换回正则表达式?例如对于字符串“今天天气很好”:varmyRe=newRegExp("weather","gi");varmyReToString=myRe.toString();//myReToStringisnow"/weather/gi"varmyReCopy=/*HowtogetthiscopyonlyfrommyReToString?*/要修改原始RegExp属性,请参阅torazaburo'sanswer. 最佳答案